# 车票表
# 实现表crud查询
from sqlalchemy.sql.expression import true,select
from sqlalchemy.sql.functions import user
from sql.database import db_session
from sqlalchemy import or_,and_,desc,asc

from sql.models import Clb, Yhb,Cpb

def get_ticket(params:dict={}):
  db = db_session()
  #使用列表生成式生成动态条件
  conditions = [Cpb.__dict__[key] == val for key,val in params.items()] #列表推导式 
  res = db.query(Cpb).filter(*conditions).first()    # *表示无名参数
  #res = [i.__dict__ for i in res]     #将User对象转化为list[dict]类型
  db.close()
  return res.__dict__

# 打印结算单接口
#时间，牌照，座位，车主姓名
#车票编号，报班卡号，目的站，车票类型，检票口，票价，车票状态
def select_dayin_bbkh(params: dict = {}):
    db = db_session()
    sql = '''SELECT cpb.bbkh,zwh,cpbh,mdcz,cplx,jpk,cpzt,clb.cpzh,clb.czxm
            FROM cpb
            INNER JOIN clb
            ON cpb.bbkh=clb.bbkh
            where 1=1
            '''
    if len(params)!=0:
        for key,val in params.items():
            sql += " and {}='{}'".format(key,val)
    print(sql)
    res = db.execute(sql)
    res = [dict(i) for i in res]  # 将User对象转化为list[dict]类型  **这里为什么不能用.__dict__**
    db.close()
    return res


# def get_ticket(params:dict={}):
#   db = db_session()
#   #使用列表生成式生成动态条件
#   conditions = [Cpb.__dict__[key] == val for key,val in params.items()] #列表推导式 
#   res = db.query(Cpb).filter(*conditions).all()    # *表示无名参数
#   res = [i.__dict__ for i in res]     #将User对象转化为list[dict]类型
#   db.close()
#   return res

